RESUMEN DEL
LENGUAJE MENTAL

“El plan más ambicioso es el que tiene más probabilidades de éxito (George Pólya)

“Sería justo decir que el concepto de bosque es más sencillo que el concepto de árbol” (Ray Kurzweil)

“Comprender es comprimir” (Gregory Chaitin)

“El verdadero lenguaje, el lenguaje profundo, debe abrir la conciencia” (Nietzsche)



Características del Lenguaje

Primitivas Semánticas Universales

Las primitiva semánticas universales están todas interrelacionadas. Todas se sostienen entre sí. Esta característica se denomina “bootstrapping”.

Todas las primitivas son ortogonales, es decir, son independientes entre sí. Pese a ser independientes, guardan numerosas relaciones entre sí. Y pueden combinarse sin restricciones mediante las propias primitivas (la semántica lexical es la misma que la semántica estructural). El verdadero poder expresivo del lenguaje reside en la combinatoria.

La tabla siguiente especifica las 12 primitivas universales del lenguaje, junto con sus contrarias o duales.

PrimitivaSintaxis
1Generalización Parametrizada⟨…x…⟩
Generalización No Parametrizada⟨…⟩
2Particularización Cualitativax/y
Particularización Cuantitativax\n
3Agrupación Paralela (Conjunto){x y … z}
Agrupación Serie (Secuencia)(x y … z)
4Distribución Completa[…[…]…]
Distribución Lineal[…⌊…⌋…]
5Sustitución Potencial(x =: y)
Sustitución Actual(x = y)
Sustitución Inicial(x := y)
6Equivalencia(x ≡ y)
Equivalencia Contraria(x ≡' y)
7EvaluaciónSin operador
No Evaluación
8Adición(x + y)
Sustracción(x − y)
9Condición(x ← y)
Condición Contraria(x ←' y)
10Navegación Ascendentex↑
Navegación Descendentex↓
11Comenzar Ejecución de xx!
Finalizar Ejecución de x y Devolver y como Resultadox¡y
12Continuar Proceso x(▶ x)
Parar Proceso x(■ x)

Notas:
1. Generalización

Una expresión genérica es una expresión que permanece activa siempre, durante todo el proceso de evaluación. Una expresión genérica puede estar parametrizada o no.

Los parámetros de una expresión genérica son nombres que representan a cualquier expresión. Cuando un parámetro aparece más de una vez en la expresión genérica, representan a la misma expresión.

Ejemplos de expresiones no parametrizadas:
  1. ⟨( z = x+y )⟩>
    Especifica que, en todo momento, z es x+y
    ((x = 3) (y = 5))
    z // ev. 8
    (x = a)
    z // ev. a+5


  2. ⟨( x>5 → (x = 5) )⟩
    Especifica que, en todo momento, x no puede superar a 5
    (x = 7)
    x // ev. 5
Ejemplos de expresiones parametrizadas:
  1. ⟨{ (x y) ← (x+y = 3) }⟩
    Especifica el conjunto de todas las secuencias de dos componentes cuya suma es 3:

    (1 2) (2 1) (0 3) (3 0) (−7 10) (a 3−a) ...

  2. Definición de una función:
    ( f(x y) = (x+y x*y) )⟩

    Aplicaciones de la función:
    f(3 4) // ev. (7 12)
    f(a b) // ev. (a+b a*b)

2. Particularización

Existen dos formas:
  1. Particularización cualitativa: x/y

    Especifica una expresión y relativa a otra x.
    Sirve para especificar un atributo o cualidad de x y para particularizar la expresión x. Como cualidad se puede leer como “es un/una)” (“is a”, en inglés).

    Existen básicamente tres formas: entidad/atributo, entidad/valor y entidad/(atributo/valor).

    Ejemplo de la primera forma:

    Pepe/hombre
    Especifica que Pepe es un hombre.

    Ejemplos de la segunda forma;

    (3*x + 2*y + 1)/(x=4) // ev. (12 + 2*y + 1) ev. (13 + 2*y)
    Particulariza una expresión.

    x/3
    Es equivalente a x3, una variable con subíndice.

    Ejemplo de la tercera forma;

    mesa/(color/blanco)
    Especifica que el color de la mesa es blanco.

  2. Particularización cuantitativa o posicional: x\n

    Selecciona el componente de número de orden n de la secuencia x.

    (x = (a b c d))
    x\1 // ev. a
    x\4 // ev. d
    x\5 // ev. θ (no existe quinto elemento)

3. Agrupación

Existen dos formas:
  1. Agrupación serie (secuencia):
    (x1 ... xn)

    Especifica una expresión de orden superior formada por expresiones que se evalúan en serie. Por ejemplo,


    que se evalúa, si x=2 e y=3, como (2 4 3 9)

  2. Agrupación paralela (conjunto):
    {x1 ... xn}

    Especifica una expresión de orden superior formada por expresiones que se evalúan en paralelo. Por ejemplo,


    que se evalúa, si x=2 e y=3, como (2=a 3=b 2 4 3 9)

4. Distribución

Existen 3 formas:
  1. Distribución normal.

    Es una forma compacta de representar una serie de expresiones que tienen una parte común. Las expresiones a distribuir se especifican entre paréntesis cuadrados. El ámbito de la distribución se delimita mediante paréntesis cuadrados en negrita. Por ejemplo:

    [(a [x y] b)]) // rep. (a x b) (a y b)

    ([(a [x y] [1 2])]) // rep. ((a x 1) (a x 2) (a y 1) rep. (a y 2))

    ([{a [x y] [1 2]}]) // rep. ({a x 1} {a x 2} {u y 1} rep. {a y 2})


    (“rep.” significa “representa a”)

  2. Distribución lineal.

    Es análoga a la distribución normal, pero con correspondencia una a una. Se especifican con paréntesis cuadrados abiertos por arriba El ámbito de la distribución se delimita también mediante paréntesis cuadrados en negrita. Por ejemplo:

    ([(a ⌊x y⌋ b ⌊1 2⌋)]) // rep. ((a x b 1) (a y b 2))

    ([{a ⌊x y⌋ b ⌊1 2⌋}]) // rep. ({a x b 1} {a y b 2})


  3. Existe también la distribución local, donde el ámbito de distribución es implícito. Por ejemplo,

    (x a[1 2 3] y) // rep. (x a1 a2 a3 y)

5. Sustitución

Existen 4 formas:
  1. Sustitución actual (o inmediata): (x = y)

    Indica sustituir de manera inmediata la expresión x por la expresión y.

    (a = 3)
    (b = a+1) // ev. (b = 4)

    i*i = −1 // unidad imaginaria
    (a i*i) // ev. (a −1)


  2. Sustitución potencial (o diferida): (x =: y)

    Indica que la expresión x representa a la expresión y.

    (a =: 7777)
    a
    La expresión a se autoevalúa, pero representa a 7777
    7777 se evalúa como a (evaluación inversa)

  3. Sustitución inicial: (x := y)

    Indica que la expresión x toma el valor inicial y.

    (D := {0 1 2 3 4 5 6 7 8 9})
    Se especifica el valor inicial de D

  4. No igualdad (o desigualdad):
    (x =' y) o (x ≠ y)

    Se utiliza solo como condición o como expresión declarativa. Por ejemplo,

    (x=3 y=4)
    (x≠y → z) // ev. z

    (a ≠ b) // expresión declarativa
    (a ≠ b → c) // ev. c

    (a = b → c)

    Se evalúa como θ. No se cumple la condición

6. Equivalencia: (x ≡ y)

Una expresión x es equivalente a otra y si ambas representan a la misma entidad.

Por ejemplo, (x+y ≡ y+x) (propiedad conmutativa de la suma)

También existe la forma (x ≡' y) (no equivalencia) que se utiliza solo como condición o como expresión declarativa.


7. Evaluación

Por defecto, toda expresión se evalúa de forma automática (de izquierda a derecha) en las secuencias y simultáneamente en los conjuntos, por lo que no existe operador explícito de evaluación.

(2^3^4^5) se evalúa como ((2^3)^4)^5)
(^ indica exponenciación)

Existe, en cambio, el operador contrario de "no evaluación" (°):

(x = 3)

(y° = (x° + x)) // ev. (y = x+3)

(y° = x (+°) 3) // ev. (y = 3+3)

(y = x+3)° // ev. (y = x+3)


Nota; En la expresión de sustitución (x = y), y se evalua primero y su valor se asigna a x.


8. Adición: x+y

Es la operación aritmética tradicional de suma, pero aplicada a expresiones cualesquiera: En una expresión del tipo r*x, r (número real) se denomina “factor” o “atributo multiplicador” de la expresión x.

La operación contraria es la sustracción o resta:

(2 − 5) // ev. -3
(2*x − 5*x) // ev. -3*x



9. Condición

Especifica la expresión x si existe la expresión y:

(x ← y)   (x si y)   o bien
(y → x)   (si y, entonces x)

Si no existe y, el resultado es la expresión nula (θ).

La operación contraria es:

(x ←' y)   (x si no y)   o bien
(y →' x)   (si no y, entonces x)

Existe una forma condicional completa que es:

(x ← y →' z)   o bien
(z ←' y → x)
(si y, entonces x; en caso contrario, z)


10. Navegación vertical

Existen dos formas:
  1. Navegación descendente: x↓

    Especifica el acceso al contenido de x (secuencia o conjunto).

    (a b c)↓ // ev. a b c
    (expresión abierta)

    {a+b+c}↓ // ev. a + b + c
    (expresión abierta)

    Esta operación está siempre ligada a otra que indica qué hacer con los componentes seleccionados. Por ejemplo,

    x = (a b c)
    y = (x↓ d) // ev. (a b c d)


  2. Navegación ascendente: x↑

    Especifica el acceso al continente de x (secuencia o conjunto).

    x=(a b c)
    (x\2)↑ // ev. (a b c) (el continente del 2° elemento de x)


    Esta operación está siempre ligada a otra que indica qué hacer con los componentes seleccionados. Por ejemplo,

    x = (a b c)
    y = ((x\2)↑ d) // ev. ((a b c) d)

11. Comienzo y fin de ejecución

x! especifica comenzar el proceso de evaluación de la expresión x, proceso orientado a producir un resultado.

La operación contraria tiene cuatro formas:
  1. ¡ (finalizar la ejecución en curso). Ejemplo: (a b ¡)! // ev. (a b)

  2. ¡y (finalizar la ejecución en curso y devolver y como resultado). Ejemplos:
    (a b ¡c)! // ev. c
    ⟨( f(x y) = (¡xx>y →' ¡y)! )⟩


  3. (finalizar la ejecución de x). Ejemplo: x=(a b x¡)! // ev. (a b)

    x! también sirve para forzar la evaluación de una expresión descriptiva, por ejemplo;

    ( 1…5 ) // rep. (1 2 3 4 5)
    ( 1…5 )! // ev. (1 2 3 4 5) ev. 12345


  4. x¡y (finalizar la ejecución de x y devolver y como resultado). Ejemplo:

    x=(a x¡b c)! // ev. b

12. Parar y continuar

Parar el proceso en curso.
Reanudar el proceso en curso.

(■ x) Parar el proceso x.
(▶ x) Reanudar el proceso x.


Derivadas

A partir de las primitivas, se pueden definir muchas operaciones genéricas derivadas. Se han definido las que se han considerado de más interés, que son las siguientes:


1. Longitud: x#

Obtiene el número de componentes de una expresión x:

a# // ev. 1
(a b c)# // ev. 3
{a (b c) d}# // ev. 3



2. Profundidad: x$

Obtiene el número de niveles de la jerarquía de una expresión x:

a$ // ev. 1
(a b c)$ // ev. 1
(abc)$ // ev. 1
(a (b c) d)$ // ev. 2
(a + (b(c/d)))$ // ev. 3



3. Interrogación: x?

Devuelve α si x existe, y θ en caso contrario.

(x = 6)
x? // ev. α
(x > 5)? // ev. α
(x < 5)? // ev. θ



4. Repetición: x☆n

Describe la repetición de x n veces. El resultado es una expresión abierta.

a☆3 // rep. a a a
ab☆3 // rep. ab ab ab
( a☆3 ) // rep. (a a a)


Existe también la variante con el operador (estrella rellena), que indica que el resultado de la expresión es una secuencia. Por ejemplo, a★3 representa a la secuencia (a a a), es decir, aaa.


5. Inversión: x∼

Invertir una secuencia x, evaluándola de derecha a izquierda, en lugar de izquierda a derecha. Por ejemplo:

(a b c d)∼ // ev. (d c b a)
(r1 ^ r2 ^ r3 ^ r4)∼ // ev. (r4 ^ r3 ^ r2 ^ r1)


Esta expresión se evaluaría como ((r4^r3)^r2)^r1


6. Intercalación: x⊣y   o bien   y⊢x

Describe la intercalación de una expresión x entre los componentes de otra expresión y.

x⊣(a b c) // rep. (a x b x c)
+⊣(a b c) // rep. (a + b + c)



7. Operaciones lógicas

Las operaciones lógicas se basan en los valores existenciales. Son análogas a las conectivas de la lógica clásica, donde θ desempe⟩a el papel de “falso” y α el papel de “verdadero”.
  1. Negación (¬).

    La negación lógica de una expresión x es el contrario de su valor existencial (θ o α). Ejemplos:

    ¬3 // ev. θ
    ¬(3=4) // ev. α


  2. Conjunción (x∧y).

    La conjunción lógica de dos expresiones es θ si uno de sus valores existenciales es θ, y α en caso contrario. Ejemplos:

    3∧4 // ev. α
    (4<3)∧(3<4) // ev. θ


  3. Disyunción (x∨y).

    La disyunción lógica de dos expresiones es α si uno de sus valores existenciales es α, y θ en caso contrario. Ejemplos:

    3∨4 // ev. α
    (4<3)∨(3<4) // ev. α
    (4<3)∨(5<4) // ev. θ

8. Rango numérico: La primera forma describe una expresión abierta formada por números consecutivos comprendidos entre r1 y r2. En la segunda forma se especifica el segundo elemento, con lo que indirectamente se especifica un incremento (r2-r1).

3…7 // rep. 3 4 5 6 7
7…3 // rep. 7 6 5 4 3
(1 4 … 13) // rep. 1 4 7 10 13


Existen también los rangos operativos, en los que se especifica un operador.

(3+…+7) // rep. 3+4+5+6+7
(3*…*7) // rep. 3*4*5*6*7


Un rango normal es un caso especial de rango operativo cuando el operador es θ.

También se pueden especificar rangos infinitos si no se especifica el extremo superior:

3… // rep. 3 4 5 ...
(3 5 …) // rep. 3 5 7 9 ...
(3+…) // rep. (3+4+5+...)
(3+5+…) // rep. (3+5+7+9+...)



9. Menor y Mayor: r1<r2 y r1>r2

Se utilizan solo como condición o como expresión declarativay aplicables solo a números reales. Ejemplos: Las contrarias son:
10. Operaciones aritméticas
  1. Producto. Es una suma repetitiva.

    x+x+x // ev. 3*x
    3*x // rep. x+x+x


  2. División. Es la operación contraria al producto: x÷y eq. x(*')y.

  3. Potencia: x^y es un producto repetitivo.

    x*x*x // ev. x^3
    x^3 // rep. x*x*x


  4. Raiz. Es la operación contraria a la derecha de exponenciación: x(∧')y es   y√x.

  5. Logaritmo. Es la operación contraria a la izquierda de la exponenciación: x('∧)y es   logyx

  6. Hiperpotencia: Es una potencia repetitiva.

    x^x^x // ev. x(^^)3
    x(^^)3 // rep. x^x^x


    Análogamente para hiperpotencias de orden superior:

    x(^^)x(^^)x // ev. x(^^^)3
    x(^^^)3 // rep. x(^^)x(^^)x

11. Punto decimal

Tiene tres formas: x.   .x   x.y
Describe la conversión de una secuencia en una suma de potencias de 10:

(a=1 b=23 c=4)
abc. // rep. (a*100 + b*10 + c) rep. (100 + 230 + 4) rep. 334

.uvw // rep. (u÷10 + v÷100 + w÷100)

x.y // rep. x. + .y



12. Unión y Separación

La operación de Unión une dos secuencias o dos conjuntos. La operación contraria es Separación, que puede actuar a la derecha o a la izquierda.
13. Operaciones con conjuntos

Son las operaciones tradicionales, pero se definen a partir de las primitivas. Pertenencia e inclusión (y sus contrarias) se utilizan como condiciones. El resto son operaciones constructivas.


14. Selección: x⇓y

Selecciona los componentes de una expresión x de acuerdo con el criterio de selección y. El resultado es una expresión abierta.

{3 7 5 12}⇓(>5) // ev. 7 12
(selecciona los elementos mayores que 5)

(a bb ccc dddd)⇓(#>2) // ev. ccc dddd
(selecciona los elementos de longitud mayor que 2)

La operación contraria (o complementaria), x⇑y, selecciona los componentes de x que no cumplen el criterio de selección y.

{3 7 5 12}⇑(>5) // ev. 3 5
(selecciona los elementos no mayores que 5)

(a bb ccc dddd)⇑(#>2) // ev. a bb
(selecciona los elementos de longitud no mayor que 2)